/**
 * js和dart相同的
 * indexOf、forEach、every、join、reduce
 * 
 * js和dart相近的
 * push -> add
 * pop -> removeLast
 * includes -> contains
 * shift -> removeAt(0)
 * filter -> removeWhere
 * findIndex -> indexWhere
 * find -> firstWhere
 * some -> any
 * reverse -> reversed.toList()
 */
List<String> arr = ['tony', if (true) 'active', for (int i in [1,2,3]) '第$i']; /** Array内可以使用if for语句控制元素, 这是js没有的, js只能用三目运算 */

void main() {
  arr.add('lammu');
  arr.removeLast();
  arr.contains('tony');
  arr.removeAt(0);
  arr.remove('tony');

  arr.addAll(['lammu', 'lammu', 'lammu']);
  print(arr);
  arr.removeWhere((item) => item == 'lammu');
  print(arr);

  
  var list = [1,6,4,2];
  print(list.reversed.toList()); // 不会改变原数组，js的reverse会
  print(list);

  var nums = [...list]; // 也支持...展开
  print(nums);
  print(nums.reduce((value, element) => value + element)); /** 和js的reduce有所不同, dart reduce的结果必须和item的类型一致 */

  var strs = ['a', 'b', 'c'];
  print(strs.reduce((value, element) => value + element));
}